/**
 * @(#)Schema.java	                Oct 4, 2009 8:49:04 PM		
 */
package com.radeonsys.litmus.data.schema;

import java.util.List;
import java.util.Map;

import com.radeonsys.litmus.data.converters.Converter;

/**
 * 
 * @author Ranganath Kini (ranganathkini at gmail dot com)
 * @version 1.0
 */
public interface Schema {
	
	/**
	 * @return
	 */
	Map<String, Converter<?,?>> getFieldMap();
	
	/**
	 * @param fieldName
	 * @return
	 */
	Converter<?, ?> getFieldConverter(String fieldName);
	
	/**
	 * @param fieldName
	 * @return
	 */
	boolean hasField(String fieldName);
	
	/**
	 * @return
	 */
	List<String> getFieldNames();
	
	/**
	 * @return
	 */
	int getFieldCount();
	
}
